// 用来进行对axios的二次封装
// 封装内容：设置基地址，请求拦截器，transformResponse
import axios from 'axios'
import store from '../store/index.js'
import JSONBig from 'json-bigint'
console.log('store', store)

const instance = axios.create({
  // 后端服务器1
  baseURL: 'http://toutiao-app.itheima.net/',
  // baseURL: 'http://ttapi.research.itcast.cn',
  transformResponse: [function (data) {
    try {
      return JSONBig.parse(data)
    } catch (err) {
      return data
    }
  }]
  // baseURL: 'http://api-toutiao-web.itheima.net'
  // timeout: 1000,
  // headers: {'X-Custom-Header': 'foobar'}
})

// 添加请求拦截器
instance.interceptors.request.use(function (config) {
  console.log('config', config)
  config.url = config.url.replace('/app/', '/')
  // 在发送请求之前做些什么
  const token = store.state.tokenInfo.token
  if (token) {
    config.headers.Authorization = `Bearer ${token}`
  }
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})

const instance2 = axios.create({
  baseURL: 'https://some-domain2.com/api/',
  timeout: 1000,
  headers: { 'X-Custom-Header': 'foobar' }
})

export { instance, instance2 }

// 默认导出intance1
export default instance
